"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/24 8:34
@Description :   python中常见容器
表达数据
字面量
变量   容器
常量

其它容器:
  1. 列表
    定义列表
    语法： 逗号分割不同的元素，元素使用[ ] 括起来
    特性：元素有序，可以重复，不限定数据类型
  2. 元组
  3. 集合
  4. 字典
"""
# 存储班级学生成绩
# 使用变量可以存储数据  但是存储数据只能是单个数据 ，如果有多个数据需要存储 变量的使用效率就比较低
score1 = 75
score2 = 75
score3 = 75
score4 = 75
score5 = 75

#   定义列表
# score_list = [60,65,80,90.0,'80']
score_list = [65, 60, 80, 80]
print(f'{score_list}的数据类型是:{type(score_list)}')  # list  列表

#  列表中元素的访问  索引  0开始
score1 = score_list[0]
print(f'{score_list}中索引为0的元素是{score1}')
score2 = score_list[1]
print(f'{score_list}中索引为1的元素是{score2}')
score3 = score_list[2]
print(f'{score_list}中索引为2的元素是{score3}')

print('*' * 30)

# 查看列表中的每个元素  遍历列表   获取列表中元素的个数  len()       range(3)   0-2
length = len(score_list)
print(f'length:{length}')

for index in range(length):
    print(f'{score_list}中索引为{index}的元素是{score_list[index]}')

print('*' * 15, '列表容器的常见操作', '*' * 15)

# 更新列表中的数据  列表[index] = 新值
score_list[0] = 75
print(f'{score_list}')

#  组合列表
score_list2 = [10, 20, 30, 40, 50]
score_result = score_list + score_list2
print(f'{score_result}')

# 重复列表
score_result = score_list * 2
print(f'{score_result}')

# in 判定
print(f'80 in score_list:{80 in score_list}')

"""
列表切片  截取列表中的元素片段   
[start:end] 不包含end  
[start:]   从指定索引开始切到列表的最后一个元素
[:end]    从列表的0索引开始切到end-1位置
[start:end:step]  根据指定的步长切片段
"""
#
# score_sub = score_list2[0:3]
# score_sub = score_list2[:3]
# score_sub = score_list2[1:]
# score_sub = score_list2[0:5:2]
# score_sub = score_list2[:5:2]
# score_sub = score_list2[::2]
# score_sub = score_list2[::]
score_sub = score_list2[:]
print(f'{score_sub}')


# 列表支持负索引操作   最后一个元素负索引为-1
score_result = score_list2[-1]
print(f'score_list2[-1] = {score_result}')

#  获取列表中的最大值
score_max = max(score_list2)
print(f'列表中的最大值是:{score_max}')
#  获取列表中的最小值
score_min = min(score_list2)
print(f'列表中的最小值是:{score_min}')